*******************************************************************************
*** 					In the shadow of the European Council: 				***
*** 	When and how do national leaders influence everyday law-making?		***
***																			***
***			Edoardo Bressanelli, Christel Koop & Christine Reh				***
***								February 2026								***
*** 						Replication materials							***
*******************************************************************************

* For any questions, please contact Edoardo Bressanelli and/or Christel Koop
* edoardo.bressanelli@santannapisa.it; christel.koop@kcl.ac.uk

* The figures and analyses below build on three different datasets:

* (1) EUCO mentions data for Figure 1: "data_mentions_bressanelli_et_al_2026.dta"
* (2) The main dataset for the paper: "data_main_bressanelli_et_al_2026.dta"
* (3) Data including withdrawn files: "data_wwd_bressanelli_et_al_2026.dta" 


* Figure 1
* --------
* Dataset: "data_mentions_bressanelli_et_al_2026.dta"
* The data includes the mentions of legislative (COD) files in EUCO Summits
* Note 1: The same legislative file may be mentioned more than once
* Note 2: Only some of the variables in the dataset used for the figure

* Items in dataset
* ----------------
* "EUCO_Summit": Location of the relevant EUCO Summit
* "EUCO_Date": The date(s) of the relevant EUCO Summit
* "EUCO_Year": The year in which the relevant EUCO Summit was held
* "Mentions_Year": Number of legislative files mentioned in the year
* "Summits_Year": Number of EUCO Summits held in the year
* "EUCO_Description": Description in Conclusions referring to legislative file
* "cod": Codecision (COD) code of the legislative file that is mentioned
* "title": Title of the legislative file that is mentioned

twoway (bar Summits_Year EUCO_Year, c(1) yaxis(1) sort) (line Mentions_Year EUCO_Year, c(1) lcolor(black) lwidth(medthick) lpattern(shortdash) yaxis(2) sort), xlabel(1999(1)2024, valuelabel angle(forty_five)) xtitle("Year")


*******************************************************************************
*** 	All analyses below use "data_main_bressanelli_et_al_2026.dta" 		***
*** 					Unless stated otherwise 							***
*******************************************************************************

* Dataset with monthly observations for each legislative (COD) file
* between being proposed by the European Commission and its conclusion

* Items in dataset
* ----------------
* id: The identifier of the legislative file in our dataset
* cod: The co-decision (COD) code of the legislative file
* start: Date of the initial European Commission proposal
* fin: Date of the final legislative act signed (missing for pending files)
* duration: Days from start to fin (missing for pending files)
* euex: Dummy for whether file expands EU competences
* recitals: Number of recitals in proposal (original)
* media_ave: Media articles on file, average over four languages
* monthstart: Month in which the Commission proposal was introduced
* monthfin: Month of file adoption or August 2024 for pending (end dataset)
* month: Month of observation
* adopt: Dummy, legislative file adoption in month yes (1) or no (0)
* start_counter: Starting month number of the time interval of the observation
* stop_counter: End month number of the time interval of the observation
* pr_com: Commission priority (programme-to-programme)
* EUCO_Pr_summits: Summit-to-summit EUCO priority measure
* period: Dummy for post-Lisbon period (from December 2009)
* crisis: Dummy for files responding to at least one of the different crises
* recitals_log: Number of recitals (plus 1) log-transformed 
* media_log: Average media articles (plus 1) log-transformed
* directive: Dummy for the instrument being a directive (1) (otherwise 0)
* new_legis: Dummy for file introducing completely new legislation
* distance: Euclidean distance left-right and European integration
* EUCO_Pr_12m: EUCO priority dummy for month mention and the next 11 months
* EUCO_Pr_6m: EUCO priority dummy for month mention and the next 5 months


* Analysis: Table 1
* -----------------
stset stop_counter, failure(adopt) id(id) enter(start_counter)

* Model 1
stcox i.EUCO_Pr_12m##i.period i.EUCO_Pr_12m##i.crisis, robust

* Model 2
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis, robust
stphtest, detail
* Note: Schoenfeld residuals reported in Appendix D (Table D1)

* Model 3
* Generate the spline basis functions (assuming 3 internal knots)
mkspline u = stop_counter, cubic nknots(3)
* For 'problematic' covariates in Model 2 (all except for media salience):
* create the interaction terms with the spline basis (u1 and u2)
* For EUCO_Pr_12m
gen uv1_EUCO_Pr_12m = EUCO_Pr_12m * u1
gen uv2_EUCO_Pr_12m = EUCO_Pr_12m * u2
* For recitals_log
gen uv1_recitals_log = recitals_log * u1
gen uv2_recitals_log = recitals_log * u2
* For euex
gen uv1_euex = euex * u1
gen uv2_euex = euex * u2
* For pr_com
gen uv1_pr_com = pr_com * u1
gen uv2_pr_com = pr_com * u2
* For crisis
gen uv1_crisis = crisis * u1
gen uv2_crisis = crisis * u2
* For period
gen uv1_period = period * u1
gen uv2_period = period * u2
* For directive
gen uv1_directive = directive * u1
gen uv2_directive = directive * u2
* For new_legis
gen uv1_new_legis = new_legis * u1
gen uv2_new_legis = new_legis * u2

* Model with interactions with splines
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis ///
      uv1_EUCO_Pr_12m uv2_EUCO_Pr_12m ///
      uv1_recitals_log uv2_recitals_log ///
      uv1_euex uv2_euex ///
      uv1_pr_com uv2_pr_com ///
      uv1_crisis uv2_crisis ///
      uv1_period uv2_period ///
      uv1_directive uv2_directive ///
      uv1_new_legis uv2_new_legis
* Note: Full spline model specification included in Appendix E (Table E1, Model 3)	  

* Model 4 (Including distance as a control; reduced number of observations)
* Model before using splines:
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis distance, robust
stphtest, detail
* Note: Schoenfeld residuals reported in Appendix D (Table D2)

mkspline w = stop_counter, cubic nknots(3)
* For each 'problematic' covariate, create interaction term with spline basis (w1 and w2)
* For EUCO_Pr_12m
gen wv1_EUCO_Pr_12m = EUCO_Pr_12m * w1
gen wv2_EUCO_Pr_12m = EUCO_Pr_12m * w2
* For period
gen wv1_period = period * w1
gen wv2_period = period * w2
* For recitals_log
gen wv1_recitals_log = recitals_log * w1
gen wv2_recitals_log = recitals_log * w2
* For euex
gen wv1_euex = euex * w1
gen wv2_euex = euex * w2
* For directive
gen wv1_directive = directive * w1
gen wv2_directive = directive * w2
* For new_legis
gen wv1_new_legis = new_legis * w1
gen wv2_new_legis = new_legis * w2

* Model with interactions with splines
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis distance ///
      wv1_EUCO_Pr_12m wv2_EUCO_Pr_12m ///
      wv1_recitals_log wv2_recitals_log ///
      wv1_euex wv2_euex ///
      wv1_period wv2_period ///
      wv1_directive wv2_directive ///
      wv1_new_legis wv2_new_legis
* Note: Full spline model specification included in Appendix E (Table E1, Model 4)	  
stset, clear


* Figure 2
* --------
* Figure 2 is based on Model 3 in Table 1; yet, we created it in R rather than Stata

* Stata dataset was exported as CSV file
* Dataset read into dataframe "d"
* The (commented-out) R code is reported below

* library(survival)
* library(splines)

* tt_spline <- function(x, t, ...) {
*   ns(t, df = 3) * x  # Natural splines of time multiplied by the covariates
* }

* plotspline <- function(m, m0, target){
*   g <- seq(0,60,0.01)

*   spline_terms <- predict(ns(g, df = 3), newx = g)  # Generate splines matrix
*   hr_time <- exp(spline_terms %*% coef(m)[grep(target, names(coef(m)))])
*   plot(g, hr_time, type = "l", col = "black", lwd = 2,
*      xlab = "Time", ylab = "Hazard Ratio")
*   abline(h = 1, lty = 2, col = "gray")
*   abline(h = exp(coef(m0)[target]), lwd = 2, lty = 2)
* }

* t <- table(d$id)
* start <- NULL
* for(i in 1:length(t)){start <- c(start, 0:(t[i] - 1))}
* d$start <- start
* d$stop <- start + 1

* m0 <- coxph(Surv(start_counter, stop_counter, adopt) ~ EUCO_Pr_12m + recitals_log + euex + pr_com + crisis + period + media_log + directive + new_legis + cluster(id), data = d, ties = "efron")
* summary(m0)
* cox.zph(m0)

* m <- coxph(Surv(start_counter, stop_counter, adopt) ~ media_log + tt(EUCO_Pr_12m) + tt(recitals_log) + tt(euex) + tt (pr_com) + tt(crisis) 
*   + tt(period) + tt(directive) + tt(new_legis), data = d, ties = "efron", tt = tt_spline)
* summary(m)

* plotspline(m, m0, "EUCO_Pr_12m")
* title(main = "EUCO Priority 12-months")


* Analysis: Table 2
* -----------------
stset stop_counter, failure(adopt) id(id) enter(start_counter)
* Full model pre-Lisbon period
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==0, robust
stphtest, detail
* Model 0-8
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==0 & start_counter<8, robust
stphtest, detail
* Model 0-11
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==0 & start_counter<12, robust
stphtest, detail
* Model 0-18
set pformat %5.4f
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==0 & start_counter<18, robust
stphtest, detail

* Full model post_Lisbon period
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==1, robust
stphtest, detail
* Model 0-8
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==1 & start_counter<8, robust
stphtest, detail
* Model 0-12
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==1 & start_counter<12, robust
stphtest, detail
* Model 0-18
stcox EUCO_Pr_12m crisis pr_com recitals_log euex media_log directive new_legis if period==1 & start_counter<18, robust
stphtest, detail

stset, clear

**************
* Appendices *
**************

* Appendix B: Descriptive statistics
* ----------------------------------
* Summary statistics
sum adopt
sum EUCO_Pr_12m
sum period
sum crisis
sum pr_com
sum recitals
sum recitals_log
sum euex
sum media_ave
sum media_log
sum directive
sum new_legis
sum distance

* Correlation matrix
pwcorr EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis distance, star(.01)


* Appendix F: Models with different operationalisations
* -----------------------------------------------------
stset stop_counter, failure(adopt) id(id) enter(start_counter)

* Table F1: Summit-to-summit operationalisation of EUCO priority
* --------------------------------------------------------------
* Model 1
stcox i.EUCO_Pr_summits##i.period i.EUCO_Pr_summits##i.crisis, robust

* Model 2
stcox EUCO_Pr_summits period crisis pr_com recitals_log euex media_log directive new_legis, robust
stphtest, detail

* Model 3
* Generate the spline basis functions (assuming 3 internal knots)
mkspline t = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariate with spline basis (t1 and t2)
* For EUCO_Pr
gen tv1_EUCO_Pr_summits = EUCO_Pr_summits * t1
gen tv2_EUCO_Pr_summits = EUCO_Pr_summits * t2
* For period
gen tv1_period = period * t1
gen tv2_period = period * t2
* For crisis
gen tv1_crisis = crisis * t1
gen tv2_crisis = crisis * t2
* For pr_com
gen tv1_pr_com = pr_com * t1
gen tv2_pr_com = pr_com * t2
* For recitals_log
gen tv1_recitals_log = recitals_log * t1
gen tv2_recitals_log = recitals_log * t2
* For euex
gen tv1_euex = euex * t1
gen tv2_euex = euex * t2
* For directive
gen tv1_directive = directive * t1
gen tv2_directive = directive * t2
* For new_legis
gen tv1_new_legis = new_legis * t1
gen tv2_new_legis = new_legis * t2

* Run the model with interactions with splines
stcox EUCO_Pr_summits period crisis pr_com recitals_log euex media_log directive new_legis ///
      tv1_EUCO_Pr_summits tv2_EUCO_Pr_summits ///
      tv1_recitals_log tv2_recitals_log ///
      tv1_euex tv2_euex ///
      tv1_pr_com tv2_pr_com ///
      tv1_crisis tv2_crisis ///
      tv1_period tv2_period ///
      tv1_directive tv2_directive ///
      tv1_new_legis tv2_new_legis

* Model 4 
stcox EUCO_Pr_summits period crisis pr_com recitals_log euex media_log directive new_legis distance, robust
stphtest, detail

mkspline q = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariates with spline basis (q1 and q2)
* For EUCO_Pr
gen qv1_EUCO_Pr_summits = EUCO_Pr_summits * q1
gen qv2_EUCO_Pr_summits = EUCO_Pr_summits * q2
* For recitals_log
gen qv1_recitals_log = recitals_log * q1
gen qv2_recitals_log = recitals_log * q2
* For euex
gen qv1_euex = euex * q1
gen qv2_euex = euex * q2
* For period
gen qv1_period = period * q1
gen qv2_period = period * q2
* For directive
gen qv1_directive = directive * q1
gen qv2_directive = directive * q2
* For new_legis
gen qv1_new_legis = new_legis * q1
gen qv2_new_legis = new_legis * q2

* Run the model with interactions with splines
stcox EUCO_Pr_summits period crisis pr_com recitals_log euex media_log directive new_legis distance ///
      tv1_EUCO_Pr_summits tv2_EUCO_Pr_summits ///
      tv1_recitals_log tv2_recitals_log ///
      tv1_euex tv2_euex ///
      tv1_period tv2_period ///
      tv1_directive tv2_directive ///
      tv1_new_legis tv2_new_legis
	  
	  
* Figure F1
* ---------
* Figure F1 is based on Model 3 in Table F1; yet, we created it in R rather than Stata

* Stata dataset was exported as CSV file
* Dataset read into dataframe "d"
* The (commented-out) R code is reported below

* library(survival)
* library(splines)

* tt_spline <- function(x, t, ...) {
*   ns(t, df = 3) * x  # Natural splines of time multiplied by the covariates
* }

* plotspline <- function(m, m0, target){
*   g <- seq(0,60,0.01)

*   spline_terms <- predict(ns(g, df = 3), newx = g)  # Generate splines matrix
*   hr_time <- exp(spline_terms %*% coef(m)[grep(target, names(coef(m)))])
*   plot(g, hr_time, type = "l", col = "black", lwd = 2,
*      xlab = "Time", ylab = "Hazard Ratio")
*   abline(h = 1, lty = 2, col = "gray")
*   abline(h = exp(coef(m0)[target]), lwd = 2, lty = 2)
* }

* t <- table(d$id)
* start <- NULL
* for(i in 1:length(t)){start <- c(start, 0:(t[i] - 1))}
* d$start <- start
* d$stop <- start + 1


* m0 <- coxph(Surv(start_counter, stop_counter, adopt) ~ EUCO_Pr_summits + recitals_log + euex + pr_com + crisis + period + media_log + directive + new_legis + cluster(id), data = d, ties = "efron")
* summary(m0)
* cox.zph(m0)

* m <- coxph(Surv(start_counter, stop_counter, adopt) ~ media_log + tt(EUCO_Pr_summits) + tt(recitals_log) + tt(euex) + tt (pr_com) + tt(crisis) 
*   + tt(period) + tt(directive) + tt(new_legis), data = d, ties = "efron", tt = tt_spline)
* summary(m)

* plotspline(m, m0, "EUCO_Pr_summits")
* title(main = "EUCO Priority Summits")


* Table F2: Six-month operationalisation of EUCO priority
* -------------------------------------------------------
* Model 1
stcox i.EUCO_Pr_6m##i.period i.EUCO_Pr_6m##i.crisis, robust

* Model 2
stcox EUCO_Pr_6m period crisis pr_com recitals_log euex media_log directive new_legis, robust
stphtest, detail

* Model 3
* Generate the spline basis functions (assuming 3 internal knots)
mkspline r = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariate with spline basis (r1 and r2)
* For EUCO_Pr_6m
gen rv1_EUCO_Pr_6m = EUCO_Pr_6m * r1
gen rv2_EUCO_Pr_6m = EUCO_Pr_6m * r2
* For period
gen rv1_period = period * r1
gen rv2_period = period * r2
* For crisis
gen rv1_crisis = crisis * r1
gen rv2_crisis = crisis * r2
* For pr_com
gen rv1_pr_com = pr_com * r1
gen rv2_pr_com = pr_com * r2
* For recitals_log
gen rv1_recitals_log = recitals_log * r1
gen rv2_recitals_log = recitals_log * r2
* For euex
gen rv1_euex = euex * r1
gen rv2_euex = euex * r2
* For directive
gen rv1_directive = directive * r1
gen rv2_directive = directive * r2
* For new_legis
gen rv1_new_legis = new_legis * r1
gen rv2_new_legis = new_legis * r2

* Model with interactions with splines
stcox EUCO_Pr_6m period crisis pr_com recitals_log euex media_log directive new_legis ///
      rv1_EUCO_Pr_6m rv2_EUCO_Pr_6m ///
      rv1_recitals_log rv2_recitals_log ///
      rv1_euex rv2_euex ///
      rv1_pr_com rv2_pr_com ///
      rv1_crisis rv2_crisis ///
      rv1_period rv2_period ///
      rv1_directive rv2_directive ///
      rv1_new_legis rv2_new_legis

* Model 4
stcox EUCO_Pr_6m period crisis pr_com recitals_log euex media_log directive new_legis distance, robust
stphtest, detail

mkspline s = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariate with spline basis (s1 and s2)
* For EUCO_Pr_6m
gen sv1_EUCO_Pr_6m = EUCO_Pr_6m * s1
gen sv2_EUCO_Pr_6m = EUCO_Pr_6m * s2
* For period
gen sv1_period = period * s1
gen sv2_period = period * s2
* For recitals_log
gen sv1_recitals_log = recitals_log * s1
gen sv2_recitals_log = recitals_log * s2
* For euex
gen sv1_euex = euex * s1
gen sv2_euex = euex * s2
* For directive
gen sv1_directive = directive * s1
gen sv2_directive = directive * s2
* For new_legis
gen sv1_new_legis = new_legis * s1
gen sv2_new_legis = new_legis * s2

* Model with interactions with splines
stcox EUCO_Pr_6m period crisis pr_com recitals_log euex media_log directive new_legis distance ///
      sv1_EUCO_Pr_6m sv2_EUCO_Pr_6m ///
      sv1_recitals_log sv2_recitals_log ///
      sv1_euex sv2_euex ///
      sv1_period sv2_period ///
      sv1_directive sv2_directive ///
      sv1_new_legis sv2_new_legis

stset, clear

* Figure F2
* ---------
* Figure F2 is based on Model 3 in Table F2; yet, we created it in R rather than Stata

* Stata dataset was exported as CSV file
* Dataset read into dataframe "d"
* The (commented-out) R code is reported below

* library(survival)
* library(splines)

* tt_spline <- function(x, t, ...) {
*   ns(t, df = 3) * x  # Natural splines of time multiplied by the covariates
* }

* plotspline <- function(m, m0, target){
*   g <- seq(0,60,0.01)

*   spline_terms <- predict(ns(g, df = 3), newx = g)  # Generate splines matrix
*   hr_time <- exp(spline_terms %*% coef(m)[grep(target, names(coef(m)))])
*   plot(g, hr_time, type = "l", col = "black", lwd = 2,
*      xlab = "Time", ylab = "Hazard Ratio")
*   abline(h = 1, lty = 2, col = "gray")
*   abline(h = exp(coef(m0)[target]), lwd = 2, lty = 2)
* }

* t <- table(d$id)
* start <- NULL
* for(i in 1:length(t)){start <- c(start, 0:(t[i] - 1))}
* d$start <- start
* d$stop <- start + 1

* m0 <- coxph(Surv(start_counter, stop_counter, adopt) ~ EUCO_Pr_6m + recitals_log + euex + pr_com + crisis + period + media_log + directive + new_legis + cluster(id), data = d, ties = "efron")
* summary(m0)
* cox.zph(m0)

* m <- coxph(Surv(start_counter, stop_counter, adopt) ~ media_log + tt(EUCO_Pr_6m) + tt(recitals_log) + tt(euex) + tt (pr_com) + tt(crisis) 
*   + tt(period) + tt(directive) + tt(new_legis), data = d, ties = "efron", tt = tt_spline)
* summary(m)

* plotspline(m, m0, "EUCO_Pr_6m")
* title(main = "EUCO Priority 6-months")


* Appendix G: Main models run on dataset including withdrawn and rejected files
* -----------------------------------------------------------------------------
* Please note: This appendix uses a different (larger) dataset
* including also withdrawn and rejected COD files
* Dataset to be used: "data_wwd_bressanelli_et_al_2026.dta" 

* Items in dataset: Same as in the main dataset, except two additional items:
* out: Date of withdrawal or last legislative activity for rejected files
* end_all: End date; either fin or out (depending on how process ended)
* Also: monthfin based on end_all (or August 2024 for pending files)

stset stop_counter, failure(adopt) id(id) enter(start_counter)

* Model 1
stcox i.EUCO_Pr_12m##i.period i.EUCO_Pr_12m##i.crisis, robust

* Model 2
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis, robust
stphtest, detail

* Model 3
mkspline t = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariate with spline basis (t1 and t2)
* For EUCO_Pr_12m
gen tv1_EUCO_Pr_12m = EUCO_Pr_12m * t1
gen tv2_EUCO_Pr_12m = EUCO_Pr_12m * t2
* For period
gen tv1_period = period * t1
gen tv2_period = period * t2
* For crisis
gen tv1_crisis = crisis * t1
gen tv2_crisis = crisis * t2
* For recitals_log
gen tv1_recitals_log = recitals_log * t1
gen tv2_recitals_log = recitals_log * t2
* For euex
gen tv1_euex = euex * t1
gen tv2_euex = euex * t2
* For directive
gen tv1_directive = directive * t1
gen tv2_directive = directive * t2
* For new_legis
gen tv1_new_legis = new_legis * t1
gen tv2_new_legis = new_legis * t2

* Model with interactions with splines
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis ///
      tv1_EUCO_Pr_12m tv2_EUCO_Pr_12m ///
	  tv1_period tv2_period ///
	  tv1_crisis tv2_crisis ///
      tv1_recitals_log tv2_recitals_log ///
      tv1_euex tv2_euex ///
      tv1_directive tv2_directive ///
      tv1_new_legis tv2_new_legis
	  
* Model 4
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive ///
new_legis distance, robust
stphtest, detail

mkspline q = stop_counter, cubic nknots(3)
* Create interaction term for each 'problematic' covariate with spline basis (q1 and q2)
* For EUCO_Pr_12m
gen qv1_EUCO_Pr_12m = EUCO_Pr_12m * q1
gen qv2_EUCO_Pr_12m = EUCO_Pr_12m * q2
* For period
gen qv1_period = period * q1
gen qv2_period = period * q2
* For crisis
gen qv1_crisis = crisis * q1
gen qv2_crisis = crisis * q2
* For recitals_log
gen qv1_recitals_log = recitals_log * q1
gen qv2_recitals_log = recitals_log * q2
* For euex
gen qv1_euex = euex * q1
gen qv2_euex = euex * q2
* For directive
gen qv1_directive = directive * q1
gen qv2_directive = directive * q2
* For new_legis
gen qv1_new_legis = new_legis * q1
gen qv2_new_legis = new_legis * q2

* Model with interactions with splines
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis distance ///
      tv1_EUCO_Pr_12m tv2_EUCO_Pr_12m ///
	  tv1_period tv2_period ///
	  tv1_crisis tv2_crisis ///
      tv1_recitals_log tv2_recitals_log ///
      tv1_euex tv2_euex ///
      tv1_directive tv2_directive ///
      tv1_new_legis tv2_new_legis

stset, clear
	  
* Appendix H: Models run on different temporal data subsets
* ---------------------------------------------------------
* Dataset to use: "data_main_bressanelli_et_al_2026.dta" 

stset stop_counter, failure(adopt) id(id) enter(start_counter)

* Table H1: Models up to a particular point
* -----------------------------------------
* Model 0-5
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<5, robust
stphtest, detail
* Model 0-7
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<7, robust
stphtest, detail
* Model 0-12
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<12, robust
stphtest, detail
* Model 0-17
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<17, robust
stphtest, detail
* Model 0-22
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<22, robust
stphtest, detail
* Full model
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis, robust
stphtest, detail

* Table H2: Models for specific intervals
* ---------------------------------------
* Model 0 till 4
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter<5, robust
* Model 5 till 7
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter>=5 & start_counter<8, robust
stphtest, detail
* Model 8 till 12
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter>=8 & start_counter<13, robust
stphtest, detail
* Model 13 till 16
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter>=13 & start_counter<17, robust
stphtest, detail
* Model 17 till 21
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter>=17 & start_counter>22, robust
stphtest, detail
* Model 22 and over
stcox EUCO_Pr_12m period crisis pr_com recitals_log euex media_log directive new_legis if start_counter>=22, robust
stphtest, detail

stset, clear
